﻿' LibWowArmory
' by Ronald M. Clifford (roncli@roncli.com)
'
' This source code is released under the GNU Library General Public License (LGPL) Version 2.1.

Imports System

Namespace roncliProductions.LibWowArmory.Character.Search

    ''' <summary>
    ''' A class that encapsulates a single character returned by the Armory search
    ''' </summary>
    ''' <remarks></remarks>
    Public Class Character

        ''' <summary>
        ''' The battlegroup the character belongs to
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property BattleGroup As String

        ''' <summary>
        ''' The ID number of the battlegroup the character belongs to
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property BattleGroupID As Integer

        ''' <summary>
        ''' The character's class
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property [Class] As Enums.ClassType

        ''' <summary>
        ''' The character's faction
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Faction As Enums.FactionType

        ''' <summary>
        ''' The character's gender
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Gender As Enums.GenderType

        ''' <summary>
        ''' The character's guild
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Guild As String

        ''' <summary>
        ''' The ID number of the character's guild
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property GuildID As Integer

        ''' <summary>
        ''' The last login date of the character
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property LastLoginDate As Date

        ''' <summary>
        ''' The character's level
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Level As Integer

        ''' <summary>
        ''' The name of the character
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Name As String

        ''' <summary>
        ''' The character's race
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Race As Enums.RaceType

        ''' <summary>
        ''' The realm the character belongs to
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Realm As String

        ''' <summary>
        ''' The relevance of the result
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Relevance As Integer

        ''' <summary>
        ''' The order in which this character appears in the current search results
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property SearchRank As Integer

        ''' <summary>
        ''' The URL of the character's Armory page
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property URL As String

        ''' <summary>
        ''' A constructor to create a new character
        ''' </summary>
        ''' <param name="strBattleGroup"></param>
        ''' <param name="intBattleGroupID"></param>
        ''' <param name="cClass"></param>
        ''' <param name="fFaction"></param>
        ''' <param name="gGender"></param>
        ''' <param name="strGuild"></param>
        ''' <param name="intGuildID"></param>
        ''' <param name="dtLastLoginDate"></param>
        ''' <param name="intLevel"></param>
        ''' <param name="strName"></param>
        ''' <param name="rRace"></param>
        ''' <param name="strRealm"></param>
        ''' <param name="intRelevance"></param>
        ''' <param name="intSearchRank"></param>
        ''' <param name="strURL"></param>
        ''' <remarks></remarks>
        Public Sub New(ByVal strBattleGroup As String, ByVal intBattleGroupID As Integer, ByVal cClass As Enums.ClassType, ByVal fFaction As Enums.FactionType, ByVal gGender As Enums.GenderType, ByVal strGuild As String, ByVal intGuildID As Integer, ByVal dtLastLoginDate As Date, ByVal intLevel As Integer, ByVal strName As String, ByVal rRace As Enums.RaceType, ByVal strRealm As String, ByVal intRelevance As Integer, ByVal intSearchRank As Integer, ByVal strURL As String)
            BattleGroup = strBattleGroup
            BattleGroupID = intBattleGroupID
            [Class] = cClass
            Faction = fFaction
            Gender = gGender
            Guild = strGuild
            GuildID = intGuildID
            LastLoginDate = dtLastLoginDate
            Level = intLevel
            Name = strName
            Race = rRace
            Realm = strRealm
            Relevance = intRelevance
            SearchRank = intSearchRank
            URL = strURL
        End Sub

    End Class

End Namespace
